package com.example.streams;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

public class StreamTest3 {
    public static void main(String[] args) {
        System.out.println(Objects.nonNull(""));
        List<Object> list = null;//new ArrayList<Object>();
        //list.add("1");
        //list.add("2");
        //list.add(null);

        //list.stream().filter(Objects::nonNull).forEach(str ->
               // System.out.println(str));
        /*
            ofNullable判空，orElseGet 则返回一个可自定义的对象，此处判断为空时返回一个新的List
            表示如果personList为null，则执行这2句代码，返回一个不含元素的List，
            这样当personList为null的时候不会报空指针错误，并且还打了日志。
         */



        /*Optional.ofNullable(list).orElseGet(() -> {
            System.out.println("personList为null！");
            return new ArrayList<>();
        }).stream().filter(Objects::nonNull).forEach(person -> { //Objects::nonNull ,过滤掉集合当中为空的对象
            System.out.println(person);
        });

        String ss = list.stream().map(Object::toString)
                .findFirst().orElse(null);
        System.out.println(ss);*/

    }
}
